var idExpedienteActual = 0;


function cargarFolios(idExpediente){
    idExpedienteActual = idExpediente;
    var grdFolios = Ext.getCmp("grdFolios");
    var dsFolios = grdFolios.getStore();
    dsFolios.reload({
        params: {
            id: idExpediente
        }
    });
}

function modificarFolio(modificando,titulo){
    if (regFolioActual == null) {
        Information("Error", "Debe seleccionar un folio");
        return;
    }
    var win = new Ext.Window({
        id: "winFolio",
        modal: true,
        title:titulo,
        closeAction:'destroy',
        width:590,
        height:420,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        autoLoad: {
            url: "frmFolio.html",
            callback: function(el,success,response,options){
                cargarFolio(modificando);
                obtenerFoliosDisponibles(modificando);
            }
        },
        bbar:
        [
        {
            text: "Grabar",
            iconCls:'icon-save',
            handler: function(){
                editarFolio(modificando);

            }
        },"-",{
            text: "Cancelar",
            iconCls:'icon-cancel',
            handler: function(){
                win.destroy();
            }
        }
        ]
    });
    win.on("destroy", function(){
        borrarSesionFolios();
    });
    win.show();
}

function cargarFolio(modificando){
    var form = document.getElementById("frmFolio");
    var idTipoDocumento = regFolioActual.get("idTipoDocumento");
    var descripcion = regFolioActual.get("descripcion");
    new Ajax.Request("obtener-tipos-documentos.jsp",{
        method: "post",
        onSuccess: function(t){
            var tipos = form.tipoDocumento;
            var data = t.responseText.evalJSON();
            var idOtros = data.idOtros;
            for(var i=0;i<data.tipos.length;i++){
                var option = document.createElement("option");
                option.value = data.tipos[i].id;
                option.appendChild(document.createTextNode(data.tipos[i].descripcion));
                tipos.appendChild(option);
            }
            for (var i=0;i<tipos.options.length;i++) {
                if (tipos.options[i].value == idTipoDocumento) {
                    tipos.selectedIndex = i;
                    break;
                }
            }
            if (idTipoDocumento != idOtros){
                form.descripcion.value = descripcion;
                form.modificando.value = 1;
                
            } else {
                form.modificando.value = 0;
            }
            if (!modificando) {
                form.modificando.value = 0;
                form.descripcion.value = "";
            } else {
                form.tipoDocumento.disabled = true;
            }
        }
    });
}

function obtenerFoliosDisponibles(modificando) {
    var form = document.getElementById("frmFolio");
    var disp = form.disponibles;
    var id = regFolioActual.get("id");
    new Ajax.Request("obtener-folios-disponibles.jsp",{
        method: "post",
        parameters: {
            idExpediente: idExpedienteActual
        },
        onSuccess: function(t) {
            removeAllOptions(disp);
            var data = t.responseText.evalJSON();
            for (var i=0;i<data.folios.length;i++) {
                var option = document.createElement("option");
                option.value = data.folios[i].id;
                option.appendChild(document.createTextNode(data.folios[i].nombre));
                disp.appendChild(option);
            }
            obtenerFoliosAgregados(modificando);
        }
    });
}

function obtenerFoliosAgregados(modificando){
    var id = regFolioActual.get("id");
    if (!modificando){
        id = 0;
    }
    var form = document.getElementById("frmFolio");
    var agr = form.agregados;
    new Ajax.Request("obtener-folios-agregados.jsp",{
        method: "post",
        parameters: {
            id: id,
            idExpediente: idExpedienteActual
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            removeAllOptions(agr);
            for (var i=0;i<data.folios.length;i++){
                var option = document.createElement("option");
                option.value = data.folios[i].id;
                option.appendChild(document.createTextNode(data.folios[i].nombre));
                agr.appendChild(option);
            }
        }
    });
}

function agregarFolios(){
    clickFolioDisponible();
    clickFolioAgregado();
    var encontro = false;
    var form = document.getElementById("frmFolio");
    var disp = form.disponibles;
    var agr = form.agregados;
    for(var i = 0;i<disp.options.length;i++){
        if (disp.options[i].selected) {
            agregarFolio(disp,agr,disp.options[i]);
            encontro = true;
            break;
        }
    }
    if (encontro) {
        agregarFolios();
    }

}

function agregarFolio(disp, agr, seleccionado){
    var id = seleccionado.value;
    new Ajax.Request("agregar-folio.jsp",{
        method: "post",
        asynchronous: false,
        parameters: {
            id: id
        },
        onSuccess: function(t){
            agr.appendChild(seleccionado);
        }
    });

}

function quitarFolios(){
    clickFolioDisponible();
    clickFolioAgregado();
    var encontro = false;
    var form = document.getElementById("frmFolio");
    var disp = form.disponibles;
    var agr = form.agregados;
    for(var i = 0;i<agr.options.length;i++){
        if (agr.options[i].selected) {
            quitarFolio(agr,disp,agr.options[i]);
            encontro = true;
            break;
        }
    }
    if (encontro) {
        quitarFolios();
    }

}

function quitarFolio(agr, disp, seleccionado){
    var id = seleccionado.value;
    new Ajax.Request("quitar-folio.jsp",{
        method: "post",
        asynchronous: false,
        parameters: {
            id: id
        },
        onSuccess: function(t){
            disp.appendChild(seleccionado);
        }
    });

}

function editarFolio(m){
    var form = document.getElementById("frmFolio");
    var id = regFolioActual.get("id");
    var descripcion = form.descripcion.value;
    var idTipoDocumento = form.tipoDocumento.value;
    var idExpediente = idExpedienteActual;
    var modificando = form.modificando.value;
    new Ajax.Request("modificar-folio.jsp",{
        method: "post",
        parameters: {
            id: id,
            idTipoDocumento: idTipoDocumento,
            idExpediente: idExpediente,
            descripcion: descripcion,
            modificando: modificando,
            usuario: localUsuario
        },
        onSuccess: function(t) {
            var winFolio = Ext.getCmp("winFolio");
            winFolio.destroy();
            if (!m) modificarFolio(m);
            cargarFolios(idExpediente);
        }
    });
}

function borrarSesionFolios(){
    new Ajax.Request("borrar-sesion-folios.jsp",{
        method: "post",
        onSuccess: function(t) {
            var data = t.responseText.evalJSON();
            if (!data.success){
                Information("Error", "No se pudo borrar la sesión de folios");
            }
        }
    });
}

function seleccionarFolioDisponible() {
    var form = document.getElementById("frmFolio");
    var disp = form.disponibles.value;
    verFolio(disp);
}

function seleccionarFolioAgregado() {
    var form = document.getElementById("frmFolio");
    var agr = form.agregados.value;
    clickFolioDisponible();
    clickFolioAgregado();
    verFolio(agr);
}

function verFolio(id){
    var win = new Ext.Window({
        modal: true,
        title:'Vista Previa',
        closeAction:'destroy',
        width:800,
        height:500,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        autoScroll: true,
        autoLoad: "ver-folio.jsp?id="+id
    });
    win.show();
}

function indexar(usuario){
    if (regFolioActual == null) {
        Information("Error", "Debe seleccionar un folio");
        return;
    }

    var tipoDocumento = regFolioActual.get("descripcionTipoDocumento");
    var descripcion = regFolioActual.get("descripcion");
    var liddocumento = regFolioActual.get("id");
    var win = new Ext.Window({
        id: "winIndexar",
        modal: true,
        title:'Criterios de Búsqueda',
        closeAction:'destroy',
        width:700,
        height:300,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        autoLoad:{
            url: "indices.jsp?tipoDocumento="+tipoDocumento+"&descripcion="+descripcion,
            callback: function(el,success,response,options){
                new Ajax.Request("obtener-indices-documento.jsp",{
                    method: "post",
                    asynchronous:false,
                    parameters: {
                        iddocumento: liddocumento 
                    },
                    onSuccess: function(t){
                        var data = t.responseText.evalJSON();
                        if (data.indices.length>0){
                            $("tipo").value="update";
                        }else{
                            $("tipo").value="insert";
                        }
                        for(var i = 0;i<data.indices.length;i++) {
                            $(data.indices[i].cindecriterio).value=data.indices[i].cindevalor;
                        }
                    }
                });
            }
        },
        bbar:
        [
        {
            text: "Grabar",
            iconCls:'icon-save',
            handler: function(){
                if ($("tipo").value=="insert"){
                    grabarIndices(usuario);
                }else{
                    actualizarIndices(usuario,liddocumento);
                }
            }
        },"-",{
            text: "Cancelar",
            iconCls:'icon-cancel',
            handler: function(){
                win.destroy();
            }
        }
        ]
    });
    win.show();
}

function actualizarIndices(usuario,iddocumento){
    var form = $("frmIndexar");
    form.usuario.value = usuario
    form.id.value = regFolioActual.get("id");
    new Ajax.Request("actualizar-indices.jsp",{
        method: "post",
        parameters: form.serialize(),
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success) {
                var winIndexar = Ext.getCmp("winIndexar");
                alert("Registro actualizado satisfactoriamente");
                winIndexar.destroy();
            }
        }
    });
}
function grabarIndices(usuario){
    var form = $("frmIndexar");
    form.usuario.value = usuario; 
    form.id.value = regFolioActual.get("id");
    new Ajax.Request("grabar-indices.jsp",{
        method: "post",
        parameters: form.serialize(),
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success) {
                var winIndexar = Ext.getCmp("winIndexar");
                alert("Registro grabado satisfactoriamente");
                winIndexar.destroy();
                var grdExpediente = Ext.getCmp("grdExpedientes");
                var dsExpediente = grdExpediente.getStore();
                var registro= dsExpediente.getAt(0);
                var grdFolios = Ext.getCmp("grdFolios");
                var dsFolios = grdFolios.getStore();
                dsFolios.reload({
                    params: {
                        id: registro.data.id
                    }
                });

            }
        }
    });
}

function obtenerIdDocumentoOtros(){
    new Ajax.Request("obtener-id-otros.jsp",{
        method: "post",
        parameters: {
            idExpediente: idExpedienteActual
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            idDocumentoOtros = data.id;
        }
    });
}

function habilitarBotonesFolios(){
    var btnClasificarDocumentos = Ext.getCmp("btnClasificarDocumentos");
    var btnModificarDocumento = Ext.getCmp("btnModificarDocumento");
    if (regFolioActual.get("id") == idDocumentoOtros){
        btnClasificarDocumentos.setDisabled(false);
        btnModificarDocumento.setDisabled(true);
    } else {
        btnClasificarDocumentos.setDisabled(true);
        btnModificarDocumento.setDisabled(false);
    }
}

function clickFolioDisponible(){
    var btn = document.getElementById("btnVistaPreviaDisp");
    var form = document.getElementById("frmFolio");
    var disp = form.disponibles;
    var encontro = false;
    for(var i = 0; i<disp.options.length;i++){
        if (disp.options[i].selected){
            encontro = true;
        }
    }
    btn.disabled = !encontro;
}

function clickFolioAgregado(){
    var btn = document.getElementById("btnVistaPreviaAgr");
    var form = document.getElementById("frmFolio");
    var agr = form.agregados;
    var encontro = false;
    for(var i = 0; i<agr.options.length;i++){
        if (agr.options[i].selected){
            encontro = true;
        }
    }
    btn.disabled = !encontro;

}
